package com.cdut.dao;

import com.cdut.pojo.Good;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * author: xinmu
 * date: 2022/4/20
 * time: 17:40
 */

//标记是mybatis的文件
@Repository
@Mapper
public interface GoodDao {

    /**
     * 添加商品
     * @param good 商品的实体类
     * @return 状态码
     */
    int addGood(Good good);

    /**
     * 删除商品
     * @param gid 商品码
     * @return 状态码
     */
    int deleteGood(@Param("gid") int gid);

    /**
     * 通过商品名模糊查询
     * @param name 商品名
     * @return 商品的实体类
     */
    List<Good> queryGoodByName(@Param("gname") String name);


    /**
     * 修改商品的信息
     * @param good 商品实体类
     * @return 状态码
     */
    int upDateGood(Good good);

    /**
     * 查询全部的商品
     * @return 全部的商品
     */
    List<Good> queryGoodList();

    /**
     * 通过商品id查询商品
     *
     * @param gid 商品id
     * @return 商品
     */
    Good queryGoodById(@Param("gid") int gid);

    /**
     * 通过分类标签查询
     * @param tag 标签
     * @return 同标签下的所有商品
     */
    List<Good> queryGoodByTag(@Param("tag") String tag);

    /**
     * 搜索商品
     * @param gname 商品名
     * @param tag 商品标签
     * @return list good
     */
    List<Good> queryGood(@Param("gname") String gname,@Param("tag") String tag);

    /**
     * 搜索用户的商品
     * @param uid 用户id
     * @return list
     */
    List<Good> queryGoodByUid(@Param("uid") int uid);


}
